Voici la solution l'exercice sur les slices :
liste = ["Maxime", "Martine", "Christopher", "Carlos", "Michael", "Eric"] trois_premiers = liste[:3] trois_derniers = liste[3:] milieu = liste[1:-1] premier_dernier = liste[::5]
Premire liste
Dans le premier cas, on rcupre les lments depuis le dbut, jusqu' l'lment 3, on utilise donc le slice :3 . En n'indiquant aucun indice de dpart, on commence automatiquement au dbut de la liste.
Deuxime liste
Mme chose pour la deuxime liste, sauf que cette fois-ci on commence l'lment avec l'indice 3 (Carlos) et on va jusqu' la fin : 3:
Cette faon de faire fonctionne car nous avons 6 lments dans notre liste. Cependant, cela ne fonctionne plus si on ajoute un lment dans la liste.
Si la liste contient 7 lments, avec ce slice, on rcuprera les quatre derniers lments de la liste et non plus les trois derniers. Pour avoir un slice qui rcupre toujours les trois derniers lments de la liste, il faudrait donc utiliser la syntaxe liste[-3:]
Troisime liste
Dans le troisime cas de figure, on ne veut ni le premier ni le dernier lment de la liste. On commence donc le slice l'lment 1 (donc le deuxime dans la liste, car on commence partir de 0, ne l'oubliez pas !) et on se rend jusqu' l'lment -1, qui sera exclu de notre slice car les slices sont exclusifs sur le deuxime indice.
Quatrime liste
Le dernier cas de figure tait un peu plus compliqu.
On voulait rcuprer uniquement le premier et le dernier lment avec un slice. Je n'utilise donc aucun indice pour le dbut ni pour la fin, ce qui me permet de rcuprer la liste au complet.
MAIS, je mets un pas de 5, qui est le nombre d'lments dans la liste, -1. Je vais donc ainsi rcuprer uniquement le premier et le dernier lment de la liste.
Pour rendre le code encore plus robuste, on pourrait utiliser la fonction len pour rcuprer automatiquement la longueur de la liste et pouvoir ainsi obtenir un rsultat constant peu importe la longueur de la liste :
premier_dernier = liste[::len(liste)-1]